寫一個方法(函式),判斷給的字串是否為回文,
是回文回傳 True,不是回文回傳 False。
此文同時發佈於好讀整理版。
example:
input 'abghjhgba'
output True
input 'abghjhsdfg'
output False
搭配前一單元字串反轉來完成,直覺且簡單。
用 String 物件的方法 equals()
比較字串是否相同。
public boolean palindromes(String str) {
String stringReversed = new StringBuilder(str).reverse().toString();
return str.equals(stringReversed);
}
用 for loop 轉回去,也跟前一單元字串反轉差不多:
public boolean palindromes2(String str) {
String reversed = "";
for (int i = 0; i <= str.length() - 1; i++) {
reversed = str.charAt(i) + reversed;
}
return str.equals(reversed);
}
可以搭配前一單元字串反轉來完成,直覺且簡單。
function palindrome(str) {
const reversedString = str.split('').reverse().join('');
return reversedString === str;
}
使用 Array helper 的 Array.prototype.every()
,檢查每一個與最後倒數幾個。
使用 str.length - 1 - index
來抓對應倒數的 index。
function palindrome(str) {
return str.split('').every((char, index) => {
return char === str[str.length - 1 - index];
})
}
但是 every 會檢查陣列裡每個元素,因為是回文,經過一半後會重複檢查,所以可以只檢查一半就好:
function palindrome(str) {
return str
.split("", str.length / 2)
.every((char, index) => char === str[str.length - 1 - index]);
}
此文同時發佈於好讀整理版。